import useDictStore from '@/stores/dict'
import { getDicts } from '@/api/dict'

/**
 * 获取字典数据
 */
export function useDict(...args: string[]) {
  const res = ref<{ [key: string]: unknown[] }>({})
  return (() => {
    args.forEach((dictType) => {
      res.value[dictType] = []
      const dicts = useDictStore().getDict(dictType)
      if (dicts) {
        res.value[dictType] = dicts
      } else {
        getDicts(dictType).then((resp) => {
          res.value[dictType] = resp.data.map((p) => ({
            label: p.dictLabel,
            value: p.dictValue,
            elTagType: p.listClass,
            elTagClass: p.cssClass,
          }))
          useDictStore().setDict(dictType, res.value[dictType])
        })
      }
    })
    return toRefs(res.value)
  })()
}

export function transformDict(dictType: string, value: string | number) {
  const dicts = useDictStore().getDict(dictType)
  if (dicts) {
    const dict = dicts.find((item) => item.value == value)
    return dict ? dict.label : value
  }
  return value
}
